define(function(require, exports, module) {
    "use strict";
    
    var jq = require('jquery');
    if (!jq) { return; }
    window.$ = jq.noConflict(); 
    
    /* [Global] 公共jQuery插件 */
    require('jq_form');
	require('jq_plugins');
	require('zex');
    
    /* 重写jQuery Ajax param，防止中文乱码 */
    $.param = function(a) {
        var s = [];
        var encode = function(str) {
            if (/[^\x00-\xff]/g.test(str)) {
                str = escape(str);
                str = str.replace('/+/g', "%u002B");
            }
            return str;
        }
        function add(key, value) {
            s[s.length] = encode(key) + '=' + encode(value);
        }
        
        if (jQuery.isArray(a) || a.jquery) {
            jQuery.each(a, function() {
                add( this.name, this.value );
            });
        } else {
            for ( var j in a ) {
                if (a[j] && jQuery.isArray(a[j])) {
                    jQuery.each(a[j], function() {
                        add( j, this );
                    });
                } else {
                    add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
                }
            }
        }
        return s.join("&").replace(/%20/g, "+");
    }
    
});